<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>

    // 三个函数顺序执行: 1秒后点第一个函数,再数2秒后打印第二个函数, 再数3秒后打印第三个函数
    // function show1 () {
    //   setTimeout(() => {
    //     console.log("1秒定时器");
    //   }, 1000);
    // }
    // function show2 () {
    //   setTimeout(() => {
    //     console.log("2秒定时器");
    //   }, 2000);
    // }
    // function show3 () {
    //   setTimeout(() => {
    //     console.log("3秒定时器");
    //   }, 3000);
    // }
    // show1();
    // show2();
    // show3();


    function show1 () {
      let pro = new Promise(function (resolve, reject) {
        setTimeout(() => {
          console.log("1秒定时器");
          resolve("1秒定时器")
          // reject("1秒失败")
        }, 1000);
      })
      return pro;
    }
    function show2 () {
      return new Promise(function (resolve, reject) {
        setTimeout(() => {
          console.log("2秒定时器");
          resolve("2秒定时器")
          // reject("2秒失败")
        }, 2000);
      })

    }
    function show3 () {
      return new Promise(function (resolve, reject) {
        setTimeout(() => {
          console.log("3秒定时器");
          resolve("3秒定时器")
          // reject("3秒失败")
        }, 3000);
      })
    }

    console.log(show1());
    // show1().then(result => {
    //   console.log(result);
    // }, err => {
    //   console.log(err);
    // })
    // show2().then(result => {
    //   console.log(result);
    // }).catch(err => {
    //   console.log(err);
    // })
    // show3().then(result => {
    //   console.log(result);
    // }).catch(err => {
    //   console.log(err);
    // })

    show1().then(result => {
      console.log(result);
      return show2()
    }, err => {
      console.log(err);
      return show2()
    }).then(result => {
      console.log(result);
      return show3()
    }, err => {
      console.log(err);
      return show3()
    }).then(result => {
      console.log(result);
    }, err => {
      console.log(err);
    })


  </script>
</body>

</html>